iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 8
0
Software Development

後端攻城獅的實戰筆記系列 第 8

在這個春天變成顯學的時代 下

  • 分享至 

  • xImage
  •  

前言

不知道有沒有跟我一樣,在Spring 2/3 的年代,試著打出自己的宇宙戰艦大和號。

維大力!?你在說什麼聽不懂?哈哈。

沒有啦,其實就是因應 Spring 可以快速集成各個框架跟工具的特性,預先定義好的 project template。

但這個其實早就有類似的概念,在 Maven 叫做 Archetype

甚至 Spring 自己最後搞了一個 Spring Boot,都是想要讓整個 Spring 專案變得更快速更敏捷。

看看這連結,真是說有多狂就有多狂。

承上集,我們知道 Spring 能紅一開始是來自於他的 DI/IOC 和 AOP 的實現。

那為什麼它後面不只能接著紅,還繼續一路紅到變業界標準,一堆 SSH、S2SH、SSM 各種組合聯手出擊。

就是厲害在他那個快速集成的特性,恐怕我們所知道的 Java 框架你是找不到一個沒有現成範例沒跟他結合的。

甚至連一些非 Java 開發的東西都有寫好的 Java Client Library 的集成。

配上微服務模組化的浪潮,換句話說,真滴猛。

要真說缺點的話,恐怕也只有太胖這個問題,但這也不是只有它胖,JVM 也胖 (我也胖,淚奔)

那我們今天想把常用的 Spring 各個面相的集成給他巡一遍,GO!GO!GO!

各方面的集成

  • web
spring-boot-starter-web, Spring Boot for Spring MVC 
Jackson in spring-boot-starter-web, Jackson Json Util (有些人喜歡用 gson)
jwt, Json Web Token
  • schedule
Spring Schedule in spring-context, Spring Schedule (有些人喜歡用 Quartz)
shedlock-spring, Schedule Lock
  • cache
spring-boot-starter-cache, Spring Boot for Spring Cache 
spring-boot-starter-data-redis, Spring Boot for Redis Client
any else cache client related: memcached, hazelcast, ignite
  • message queue
spring-cloud-starter-stream, Spring Boot for Spring Cloud Stream
any else message queue client related: RabbitMQ, Apache Kafka, Kafka Streams, ... 
  • data persist related
spring-boot-starter-data-jpa, Spring Boot for Spring Data JPA 
mybatis-spring-boot-starter, MyBatis
druid-spring-boot-starter, 阿里的數據庫連接池,也有一些替代品
any else nosql client related: mongodb, cassandra, ...
  • test
spring-boot-starter-test, Spring Boot for Unit Test 
  • util
lombok
commons-lang3, Apache language toolkit
commons-io, Apache IO Toolkit
commons-codec, Apache Toolkit such as encryption and decryption
commons-collections4, Apache collections toolkit
hutool-all, Hutool是一个Java工具包,也只是一个工具包
  • monitor and debug
spring-boot-starter-actuator, Spring Boot for Application Metrics
spring-boot-admin, Admin UI for Administration of Spring Boot Applications
spring-boot-devtools, Spring Boot for Dev Tools (Hot Reload)
  • documentation
springfox-swagger2, Swagger Document
  • Spring Cloud Family
基本上就是 Netflix Solution 的封裝,所以我不一一列出來,不過大陸那邊愛用 Dubbo。不過有一些東西 Spring 自己已經重寫,例如 Spring Cloud Gateway (Zuul 2 已死)
  • Cloud Service Library Related
這個我也不一一列了,端看你使用的是哪一家雲端服務,AWS, GCP, AZURE, ...

後記

有些東西並沒有寫出來,但時至今日也許還有些人在使用。例如 hibernate-validator。

這也跟這幾年開源框架影響 Java 本體有關係,許多好的特性或概念多半會透過 JSR 提案然後最後在 Java 實作出來。

例如這個 hibernate-validator,是 JSR303。現在可以直接用 javax.validation.* 的類別。

所以 Java 這幾年也是有在進步的,但進步的各有好壞,這就先不談論了。

其實我本來想寫 Java 各個版本的演進,但我發現實在太龐大了,寫到一半發現會寫個沒完 (笑)

而且會使主題也過度偏向 Java,只好有機會再說了 (飄走)


About Me

Jian-Min Huang

wide range skill set backend engineer

Research, Architecture, Coding, DB, Ops, Infra.

mainly write Java but also ❤️ Scala, Kotlin and Go

http://github.jianminhuang.cc

http://linkedin.jianminhuang.cc

http://note.jianminhuang.cc

yfr.huang@hotmail.com


上一篇
在這個春天變成顯學的時代 上
下一篇
設定檔與日誌這件小事 上
系列文
後端攻城獅的實戰筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言